diff options
| author | Adam Soltys <[email protected]> | 2022-11-12 01:40:54 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-11-12 01:40:54 -0800 |
| commit | 9764d0f0989ea25a502572453ee4f992079f520f (patch) | |
| tree | af9d6efbae922b388f669a50ba048cff2da88a17 /src/routes/(app)/[username]/receive | |
| parent | 2a8e54dcdc7c7f780253b1d7f9cf3552dcba3ff2 (diff) | |
| download | coinos-ui-9764d0f0989ea25a502572453ee4f992079f520f.tar.gz coinos-ui-9764d0f0989ea25a502572453ee4f992079f520f.zip | |
persist requests
Diffstat (limited to 'src/routes/(app)/[username]/receive')
4 files changed, 64 insertions, 84 deletions
diff --git a/src/routes/(app)/[username]/receive/[...network]/+page.server.js b/src/routes/(app)/[username]/receive/[...network]/+page.server.js deleted file mode 100644 index 1068f273..00000000 --- a/src/routes/(app)/[username]/receive/[...network]/+page.server.js +++ /dev/null @@ -1,5 +0,0 @@ -import invoice from '$lib/invoice'; - -export const actions = { - default: invoice -}; diff --git a/src/routes/(app)/[username]/receive/[...network]/+page.svelte b/src/routes/(app)/[username]/receive/[...network]/+page.svelte deleted file mode 100644 index f19600fd..00000000 --- a/src/routes/(app)/[username]/receive/[...network]/+page.svelte +++ /dev/null @@ -1,79 +0,0 @@ -<script> - import { Avatar, Icon, Numpad } from '$comp'; - import { t } from '$lib/translations'; - import { enhance } from '$app/forms'; - import { page } from '$app/stores'; - import { invoices, request } from '$lib/store'; - import { browser } from '$app/environment'; - import { goto } from '$app/navigation'; - - export let data; - export let form; - let network = 'lightning'; - - if ($page.params.network) ({ network } = $page.params); - - let req; - - $: load($page); - let load = () => { - if ($request) { - req = { ...$request }; - $request = null; - } - }; - - let amount; - - let { currency, username } = data.subject; - let { user } = data; - - $: paid = browser && form && Object.values($invoices).find((inv) => inv.amount === form.amount); - $: paid && goto(`/invoice/${paid.uuid}/paid`); -</script> - -{#if form && req} - <div class="container px-4 mt-20 max-w-xl mx-auto space-y-8"> - <div class="text-center mb-8 space-y-5"> - <p class="text-5xl break-words"> - <span class="text-xl md:text-2xl">Invoice sent to</span> - </p> - - <div class="flex p-1 gap-2 justify-center"> - <Avatar user={req.requester} size={'20'} /> - <p class="text-4xl break-words my-auto">{req.requester.username}</p> - </div> - </div> - <div class="text-center"> - <a href={`/${user.username}/dashboard`} class="mx-auto text-center"> - <button class="bg-black text-white rounded-2xl w-20 py-3 font-bold hover:opacity-80"> - Done - </button> - </a> - </div> - </div> -{:else} - <form method="POST" class="flex justify-center items-center mt-24 mb-3 px-3" use:enhance> - <input type="hidden" name="amount" value={amount} /> - <input type="hidden" name="currency" value={currency} /> - <input type="hidden" name="username" value={username} /> - <input type="hidden" name="network" value={network} /> - - {#if req} - <input type="hidden" name="requester" value={req.requester.username} /> - {/if} - - <input type="hidden" name="prompt" value="true" /> - - <div class="space-y-3 w-[300px] mx-auto"> - <Numpad bind:amount bind:currency /> - <button - type="submit" - class="bg-black text-white rounded-xl w-full h-[48px] flex justify-center items-center font-semibold - opacity-100 hover:opacity-80" - > - {amount ? 'Next' : "Sender's choice"} - </button> - </div> - </form> -{/if} diff --git a/src/routes/(app)/[username]/receive/[...param]/+page.server.js b/src/routes/(app)/[username]/receive/[...param]/+page.server.js new file mode 100644 index 00000000..1e57aa67 --- /dev/null +++ b/src/routes/(app)/[username]/receive/[...param]/+page.server.js @@ -0,0 +1,15 @@ +import { auth, get } from '$lib/utils'; +import invoice from '$lib/invoice'; + +export let load = async ({ cookies, params }) => { + let id = parseInt(params.param); + + let request; + if (id) ({ request } = await get(`/request/${id}`, auth(cookies))); + + return { ...params, request }; +}; + +export const actions = { + default: invoice +}; diff --git a/src/routes/(app)/[username]/receive/[...param]/+page.svelte b/src/routes/(app)/[username]/receive/[...param]/+page.svelte new file mode 100644 index 00000000..cb69b06a --- /dev/null +++ b/src/routes/(app)/[username]/receive/[...param]/+page.svelte @@ -0,0 +1,49 @@ +<script> + import { Icon, Numpad } from '$comp'; + import { t } from '$lib/translations'; + import { enhance } from '$app/forms'; + import { page } from '$app/stores'; + import { invoices, requestRedirect } from '$lib/store'; + import { browser } from '$app/environment'; + import { goto } from '$app/navigation'; + + export let data; + export let form; + let network = 'lightning'; + + if ($page.params.param === 'bitcoin') network = 'bitcoin'; + + let { request } = data; + + let amount; + + let { currency, username } = data.subject; + let { user } = data; + + $: paid = browser && form && Object.values($invoices).find((inv) => inv.amount === form.amount); + $: paid && goto(`/invoice/${paid.uuid}/paid`); +</script> + +<form method="POST" class="flex justify-center items-center mt-24 mb-3 px-3" use:enhance> + <input type="hidden" name="amount" value={amount} /> + <input type="hidden" name="currency" value={currency} /> + <input type="hidden" name="username" value={username} /> + <input type="hidden" name="network" value={network} /> + + {#if request} + <input type="hidden" name="request_id" value={request.id} /> + {/if} + + <input type="hidden" name="prompt" value="true" /> + + <div class="space-y-3 w-[300px] mx-auto"> + <Numpad bind:amount bind:currency /> + <button + type="submit" + class="bg-black text-white rounded-xl w-full h-[48px] flex justify-center items-center font-semibold + opacity-100 hover:opacity-80" + > + {amount ? 'Next' : "Sender's choice"} + </button> + </div> +</form> |
